package Soligee.model.vo.cadastros;

import Soligee.model.vo.lancamentos.OrcamentoVO;
import Soligee.model.vo.lancamentos.VendaVO;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity
@Table(name ="vendedor")
public class VendedorVO implements Serializable {

    @Id
    @SequenceGenerator(name = "cod_vendedor", sequenceName = "cod_vendedor_seq", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "cod_vendedor")
    @Column(name = "cod_vendedor", nullable = false)
    private int codVendedor;
    @Column(name = "nome", nullable = false)
    private String nome;
    @Column(name = "comissao_venda_prazo", nullable = false)
    private double comissaoVendaPrazo;
    @Column(name = "comissao_venda_vista", nullable = false)
    private double comissaoVendaVista;
    @Column (name="ativo", nullable = false)
    private boolean ativo;
    @OneToMany(mappedBy = "vendedor", fetch = FetchType.LAZY)
    @Cascade(CascadeType.MERGE)
    private Collection<OrcamentoVO> orcamento;
    @OneToMany(mappedBy="vendedor", fetch = FetchType.LAZY)
    @Cascade(CascadeType.MERGE)
    private Collection<VendaVO> venda;

    public VendedorVO() {
    }

    public VendedorVO(int codVendedor, String nome, double comissaoVendaPrazo,
            double comissaoVendaVista) {
        this.setCodVendedor(codVendedor);
        this.setNome(nome);
        this.setComissaoVendaPrazo(comissaoVendaPrazo);
        this.setComissaoVendaVista(comissaoVendaVista);
        this.setAtivo(true);
    }

    public double getComissaoVendaPrazo() {
        return comissaoVendaPrazo;
    }

    public void setComissaoVendaPrazo(double comissaoVendaPrazo) {
        this.comissaoVendaPrazo = comissaoVendaPrazo;
    }

    public double getComissaoVendaVista() {
        return comissaoVendaVista;
    }

    public void setComissaoVendaVista(double comissaoVendaVista) {
        this.comissaoVendaVista = comissaoVendaVista;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Collection<OrcamentoVO> getOrcamento() {
        return orcamento;
    }

    public void setOrcamento(Collection<OrcamentoVO> orcamento) {
        this.setOrcamento(orcamento);
    }

    public int getCodVendedor() {
        return codVendedor;
    }

    public void setCodVendedor(int codVendedor) {
        this.codVendedor = codVendedor;
    }

    public boolean isAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public Collection<VendaVO> getVenda() {
        return venda;
    }

    public void setVenda(Collection<VendaVO> venda) {
        this.venda = venda;
    }

    
}